CREATE PROC [dbo].[Subsidy_UpdateTmpHavaleh]
    @TmpId NUMERIC(18, 0),
    @GoodsCode VARCHAR(15)
AS
DECLARE @id BIGINT = ISNULL(SCOPE_IDENTITY(), 0);
BEGIN TRY
    BEGIN TRAN;
    DECLARE @k_code VARCHAR(15);
    DECLARE @count INT;

    SELECT @count = COUNT(*)
    FROM TmpHavaleh
    WHERE K_Code IN
          (
              SELECT GoodsCode
              FROM dbo.SubsidyGoodsMapping
              WHERE SubsidyGoodsCode = @GoodsCode
          )
          AND Id_Havaleh = @TmpId;
    IF @count > 0
        UPDATE TmpHavaleh
        SET Status = 7
        WHERE K_Code IN
              (
                  SELECT GoodsCode
                  FROM dbo.SubsidyGoodsMapping
                  WHERE SubsidyGoodsCode = @GoodsCode
              )
              AND Id_Havaleh = @TmpId;
    ELSE
        UPDATE TmpHavaleh
        SET Status = 7
        WHERE K_Code = @GoodsCode
              AND Id_Havaleh = @TmpId;
    COMMIT TRAN;
    RETURN @id;
END TRY
BEGIN CATCH
    ROLLBACK TRAN;
    SET @id = -1;
    RETURN @id;
END CATCH;





